package statemachine 
{
	import flash.utils.Dictionary;
	/**
	 * @author vkozhaev
	 */
	public interface IState
	{
		/**
		 * метод который запускается перед началом нового состояния
		 * @param obj - обьект которому присваивается данное состояние
		 */	 
		function doBefore():void;
		/**
		 * метод который запускается в процессе холостого хода
		 */	 
		function doInProcess():void;
		/**
		 * метод который запускается после завершения состояния
		*/	 
		function doAfter():void;
		
		function get name():String;
		/**
		 * Оставшиеся тики холостого хода
		 */
		function get ticks():int;
		
		function set ticks(val:int):void; 
		/**
		 * Обьект ассоциированный с данным экземпляром состояния
		 */
		function set stateObject(val:IStateObject):void;
		function get stateObject():IStateObject;
	}

}